跳到主要内容

Git 只读文件支持

作为一个应用项目,一般会有一些文件来描述生产环境中的配置信息,例如服务连接信息、环境配置信息等。而在本地开发过程中又必须依照本地的服务环境来调整配置这些文件,而如果不小心提交了这些修改,可能会直接导致生成环境中的应用无法正常运行。

所以在 SVN 上有一个非常有用的特性,可以配置某些文件是只读的,不允许提交修改。

而 Git 本身是没有这个特性的,主流的 Git 平台一般会提供只读分支的功能,但无法实现对个别文件或者文件夹的只读限制。

使用方法如下:

  1. 进入仓库页面,右键要设置为只读的文件或者文件夹,选择“标识为只读”(仓库管理员才有权限)

输入图片说明

  1. 进入仓库设置界面,可以查看和管理仓库所有的只读设置

输入图片说明

  1. 如果推送代码时候,包含对只读文件的修改则会报错:
  • 代码提交报错:

输入图片说明

  • PR 代码合并报错:
  1. 针对只读报错,有三种解决方式
  • 将只读文件内容改回原本的状态

将相应只读文件的内容修改到和线上一致即可正常推送

  • git reset --hard <tree-ish> 命令

使用git reset --hard <tree-ish>命令抛弃修改只读文件的 commit 后即可正常推送

  • 取消相应文件只读标记(仅仓库管理员可操作)

拥有仓库管理权限的用户,可以到仓库目录或仓库设置页面中取消相应文件只读标记

该功能目前面向付费企业版用户提供。